package com.meatball.core.validation

import jakarta.validation.ConstraintValidator
import jakarta.validation.ConstraintValidatorContext

/**
 * TODO 实现ConstraintValidator接口，泛型参数RolePrefix是注解类型，String是要验证的字段类型
 *
 * @author 张翔宇
 * @since 2024年3月26日
 */
class RolePrefixValidator : ConstraintValidator<RoleNameValidity, String> {
    override fun isValid(p0: String?, p1: ConstraintValidatorContext?): Boolean {
        // 如果value为null，认为是合法的（因为没有值可以验证）
        // 如果value以"ROLE_"开头，也认为是合法的
        // 否则返回false，验证失败
        return p0 == null || p0.startsWith("ROLE_")
    }
}